// 导入vuex
import Vue from 'vue'
import Vuex from 'vuex';

Vue.use(Vuex);

import { setToken, getToken,removeToken } from '@/utils/auth'
import { userInfoAPI } from "@/api";
const store = new Vuex.Store({
  state: {
    // 如果给默认值的时候要考虑能不能取到值，不能取到给默认值
    tokenObj: getToken() || {},
    // 保存用户信息变量
    userInfo:{}
  },
  mutations: {
    // 放方法
    saveToken (state ,payload) {
      console.log(payload);
        
         // 把传进来的token对象赋值给tokenObj
      state.tokenObj = payload
    //   将token存在本地存储,
        setToken(payload)
    },
    setUserInfo (state, payload) {

      state.userInfo = payload
  },
  logout(state){
    // 清空vuex里的token
    state.tokenObj = {}
     // 清空vuex里的userInfo
    state.userInfo={}
    // 清空本地存储的token
    removeToken()
  }
  },
  actions:{
   async reqUserInfo(context){
      if(!context.state.userInfo.name){
        let res = await  userInfoAPI()
       //  数据保存到vuex
        context.commit('setUserInfo', res.data.data)
       }
    }
  }
});
export default store